# knowledge/examples/main.py

import sys
import os

# 添加知识库根目录到Python路径
current_dir = os.path.dirname(os.path.abspath(__file__))
kb_root = os.path.dirname(os.path.dirname(current_dir))
sys.path.insert(0, kb_root)

from knowledge.core.kb_application import KnowledgeBaseApplication

def main():
    """简化版知识库测试"""
    try:
        print("🚀 启动企业知识库系统...")
        
        # 1. 创建应用实例
        kb_app = KnowledgeBaseApplication("enterprise_knowledge")
        
        # 2. 初始化系统
        print("📝 初始化系统...")
        kb_app.initialize()
        
        # 3. 设置知识库路径
        knowledge_root = "../../resource"
        
        print(f"📁 知识库路径: {os.path.abspath(knowledge_root)}")
        
        if not os.path.exists(knowledge_root):
            print("❌ 知识库目录不存在")
            return
        
        # 4. 检查是否需要构建知识库
        collection_info = kb_app.get_collection_info()
        if collection_info.get('exists', False):
            print(f"✅ 发现现有知识库索引 ({collection_info['document_count']} 个文档)")
            print("📚 直接加载现有索引...")
            # 直接加载现有索引，不扫描文件
            stats = kb_app.build_knowledge_base(knowledge_root, force_rebuild=False)
        else:
            print("🔨 构建新知识库索引...")
            stats = kb_app.build_knowledge_base(knowledge_root, force_rebuild=True)
        
        print(f"✅ 知识库就绪: {stats['total_documents']} 个文档")
        
        # 5. 测试查询
        if stats['total_documents'] > 0:
            print("\n🧪 开始测试查询...")
            
            queries = [
                "10月1日去北京出差的住宿标准是多少钱？",
                "JRT公司的私有知识库引擎的国内市场份额是多少？",
                "JRT公司2024年营收与研发投入是多少？"
            ]
            
            for query in queries:
                print(f"\n❓ 问题: {query}")
                result = kb_app.query(query, show_details=False)
                print(f"🤖 回答: {result['response']}")
                print(f"⏱️  耗时: {result['response_time']:.2f}秒")
            
        print("\n🎉 知识库测试完成!")
        
    except Exception as e:
        print(f"❌ 程序执行失败: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    main()